/*
 * Algorithms.h
 *
 *  Created on: 22 Aug 2011
 *      Author: Allan
 */

#ifndef ALGORITHMS_H_
#define ALGORITHMS_H_

// C++ includes
#include <algorithm>
#include <vector>
using namespace std;

const unsigned 
IndexOf(const string& s, const vector<string>& species);

const bool 
IsContained(const string& s, const vector<string>& species);

const vector<string>
Union(const vector<string>& speciesA, const vector<string>& speciesB);

const vector<string>
Intersection(const vector<string>& speciesA, const vector<string>& speciesB);

const vector<string>
Difference(const vector<string>& speciesA, const vector<string>& speciesB);

const vector<string>
Unique(const vector<string>& species);

#endif /* ALGORITHMS_H_ */
